home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Moscow ML 1.31 / source code / mosml / src / test / test9.sml < prev    next >
Encoding:
Text File  |  1996-07-03  |  630 b   |  34 lines  |  [TEXT/R*ch]

  1. type person = {name: string, age: int};
  2. val p1 : person = {name = "Peter", age = 99};
  3. val {name=name1, age=age1} = p1;
  4. fun nameOfPerson {name=x, age=_} = x;
  5. val name1 = nameOfPerson p1;
  6. val {name,age} = p1;
  7.  
  8. val {name,...}:person = p1;
  9. val {name : string as name1,...} = p1;
  10.  
  11. val f = fn {name=x,...}:person => x;
  12.  
  13. val name1 = #name p1;
  14. val age1 = #age p1;
  15.  
  16.  
  17. fun f {lab=v} = v+1;
  18.  
  19. let
  20.   fun eq r1 r2 = (#l1 r1) = (#l1 r2)
  21.   val t = eq {l1 = 1, l2 = 3}
  22.              {l1 = 1, l3 = "a"}
  23. in
  24.   (eq, t)
  25. end;
  26.  
  27. let
  28.   val f = fn {l1 = x,...} => x
  29.   val g = fn {l1 = x, l2 = y} => (x,y)
  30.   val h = fn x => (x=x, f x, g x)
  31. in
  32.   (f, g, h)
  33. end;
  34.